package day4;

import java.util.Arrays;
import java.util.Random;

public class Homework {
    public static void main(String[] args) {
        demo4();
    }
    //a.自定义一个长度为10的整形数组，
    // 将数组最大值保存在数组第1位(提示最大值和第一位互换)
    public static void demo1(){
        int[] nums={-20,-3,-5,-7,-10,-4,-12,-18,-11,-13};
        int index=0;// 保存最大值下标
        int max=nums[0]; //保存最大值  因为不确定是否具有正负数
        for(int i=0;i<nums.length;i++){
            if(nums[i]>max){
                max=nums[i];
                index=i;
            }
        }
        //index==0了 没有必要互换
        //nums[index] <==> nums[0]
        if(index!=0) {
            nums[0] = nums[0] ^ nums[index];
            nums[index] = nums[0] ^ nums[index];
            nums[0] = nums[0] ^ nums[index];
        }
        System.out.println("互换后:" + Arrays.toString(nums));
    }
    //b.自定义一个整形数组，求出
    // 数组元素的奇数和，偶数和，最大值和最小值
    public static void demo2(){
        int[] nums={-20,-3,-5,-7,-10,-4,-12,-18,-11,-13};
        int even=0;
        int odd=0;
        int max=nums[0];
        int min=nums[0];
        for(int n:nums){
            if(n>max) max=n;
            if(n<min) min=n;
            if(n%2==0) even+=n;
            else odd+=n;
        }
        System.out.println("偶数和:"+even);
        System.out.println("奇数和:"+odd);
        System.out.println("最大值:"+max);
        System.out.println("最小值:"+min);
    }
    //a.定义一个数组{2,3,4,5,2,3,4,2,2,2,2},求数组中出现次数超过一半的元素(不能对数组排序)
    //提示:二重for循环 求每个元素出现次数  如果次数超过一半 打印
    public static void demo3(){
        int[] nums={2,3,4,3,2,3,4,3,2,3,3};
        for(int i=0;i<nums.length;i++){
            int count=0;
            for(int j=0;j<nums.length;j++){
                if(nums[i]==nums[j]) count++;
            }
            if(count>nums.length/2){
                System.out.println("超过一半是:"+nums[i]);
                break;
            }
        }
    }
    //b.向一个长度为5的整型数组中随机生成5个1-10的随机整数
    //要求生成的数字中没有重复数
    public static void demo4(){
        Random r=new Random();
        int[] nums=new int[10];
        for(int i=0;i<nums.length;i++) {
            nums[i] = r.nextInt(10) + 1;
            for(int j=0;j<i;j++){
                if(nums[i]==nums[j]){  //重复了
                    i--;
                    break;
                }
            }
        }
        System.out.println("结果:"+Arrays.toString(nums));
    }
    public static void random(){
        //java生成随机数   四位随机整数  五位   六位...
        //100000~999999
        //1.Math类
        //random() 生成0-1随机浮点数  [0,1)  0.9999999
        // floor() 向下取整   Math.floor(1.9) ==1
        // ceil()  向上取整   Math.ceil(1.1)  ==2
        int num1=(int)Math.floor(Math.random()*900000+100000);
        //2.Random对象
        //nextInt(n) 生成0 ~ n-1 随机整数
        Random r=new Random();
        int num2=r.nextInt(900000)+100000;
        System.out.println(num1);
        System.out.println(num2);
    }
}
